#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>

int main()
{
    int fd = open("log.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666);
    dup2(fd, 1);
    printf("hello yss\n");
    return 0;
}

//int main()
//{
//    close(1);
//    //open("log.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666);//重定向
//    open("log.txt", O_WRONLY|O_CREAT|O_APPEND, 0666);//追加重定向
//    printf("hello printf\n");
//    fprintf(stdout, "hello fprintf\n");
//    return 0;
//}

//int main()
//{
//    close(0);
//    open("log.txt", O_RDONLY);
//    int a = 0;
//    scanf("%d", &a);
//    printf("%d\n", a+100);
//    return 0;
//}


//int main()
//{
//    umask(0);
//    int fd = open("log.txt", O_WRONLY|O_CREAT, 0666);
//    if(fd==-1)
//    {
//        perror("open");
//        return 1;
//    }
//    return 0;
//}


//#define ONE 1
//#define TWO (1<<1)
//#define THREE (1<<2)
//#define FOUR (1<<3)
//#define FIVE (1<<4)
//
//void Print(int flag)
//{
//    if(flag & ONE) printf("1\n");
//    if(flag & TWO) printf("2\n");
//    if(flag & THREE) printf("3\n");
//    if(flag & FOUR) printf("4\n");
//    if(flag & FIVE) printf("5\n");
//}
//
//int main()
//{
//    Print(ONE);
//    printf("------------------------\n");
//    Print(TWO);
//    printf("------------------------\n");
//    Print(ONE | TWO);
//    printf("------------------------\n");
//    Print(THREE|FOUR|FIVE);
//    printf("------------------------\n");
//    Print(ONE|TWO|THREE|FOUR|FIVE);
//    return 0;
//}


//#include <stdio.h>
//#include <string.h>
//
//int main()
//{
//    printf("hello printf\n");
//    fputs("hello fputs\n", stdout);
//    const char* msg = "hello fwirte\n";
//    fwrite(msg, 1, strlen(msg), stdout);
//    fprintf(stdout, "hello fprintf\n");
//    return 0;
//}

//#define FILENAME "log.txt" 
//int main()
//{
//    FILE* fp = fopen(FILENAME, "r");
//    if(fp == NULL)
//    {
//        perror("fopen");
//        return 1;
//    }
//    
//    char buffer[64];
//    while(1)
//    {
//        char* r = fgets(buffer, sizeof(buffer), fp);
//        if(!r) break;
//        printf("%s", buffer);
//    }
//
//    //const char* msg = "hello yss\n";
//    //int cnt = 5;
//    //while(cnt--)
//    //{
//    //    int n = fwrite(msg, strlen(msg), 1, fp);
//    //    printf("write: %d block\n", n);
//    //}
//    fclose(fp);
//    return 0;
//}

//int main()
//{
//    FILE* fp = fopen("./log.txt", "a");
//    if(fp == NULL)
//    {
//        perror("fopen");
//        return 1;
//    }
//    const char* str = "hello file\n";
//    fputs(str, fp);
//    fclose(fp);
//    return 0;
//}
